home *** CD-ROM | disk | FTP | other *** search
Text File | 1990-05-18 | 3.1 KB | 74 lines | [TEXT/GEOL] |
- Item 7149643 16-May-90 06:50PDT
-
- From: A33 Drexel U, Nadine Perkey, ASC,PRA
-
- To: BETA Beta, Edward Anuff,PRT
- MACAPP.TECH$ MacApp Technical
-
- Sub: Another Re: Printing >72 dpi
-
- Ed,
-
- I have some specific answers for you:
-
- > 1) Has anyone done any work regarding printing to Chooser-level output
- devices
- > which are greater than 72 dpi in resolution?
-
- Yes, I have written an application (using MacApp 2.0B9) that prints plots of
- weather data in the highest resolution that the currently selected printer
- supports. It is not difficult.
-
- > 2) How do I determine the resolution of the Chooser-ed printer from within
- > MacApp?
-
- Call the Printing Managers's PrGeneral routine with the opcode GetRslData
- (see Inside Mac Vol 5, pp 410-414).
-
- > 3) How do I take advantage of this information? Using the standard printer
- > stuff, my output appears at the screen resolution whether its on an
- > ImageWriter, LaserWriter, JDL plotter, etc.
-
- Override TStdPrintHandler to increase the printer resolution (which will
- shrink the printed image) and draw the image for the printer, expanding
- it by the appropriate amount so that the resulting image will be the
- correct size. The coding is not too bad but what you have to override to
- actually make it work is a bit of a hack.
-
- I overrode the following methods:
-
- SetPrintExtent - Expand the sizes of the view and print extent so that
- the drawing gets clipped properly and the printer does not print blank
- pages.
- PosePrintDialog - Scale up the drawing to compensate for high res printing
- JUST before the actual printing. We cannot rescale the drawing for
- printing in the Print method (where it would make more sense) because
- the standard print handler may update the window containing the drawing
- after putting the job dialog away before drawing for the printer.
- BanishPrintDialog - Unscale the drawing JUST after drawing for the printer.
- Print - Call CheckPrinter in case the user has just changed printers via
- the Chooser. If the current printer has variable resolution then set
- its resolution to the highest it supports. Do inherited Print. Set the
- printer back to the screen resolution. Also restore the size of the
- view which got adjusted in SetPrintExtent.
-
- The views that use this print handler need fields representing horizontal
- and vertical scaling factors which get set by the print handler (via an
- access method) so that they can scale themselves to compensate for the
- printer's resolution. Also, some access methods were added to the
- drawing's view so we did not have to vandalize the its fSize from inside
- the print handler.
-
- > 4) Does 2.0 final support output resolutions? How about 2.1?
-
- I do not know, but I think it should be supported. I would think anyone
- having to plot data would want to do this if they saw the immense
- difference between 72 dpi and 1500 dpi LaserWriter output.
-
- Hope this helps,
-
- Marianne Cain
- Drexel University
- Software Development Group
-
-